package org.xteam.sled.model;

import java.util.List;

import org.xteam.sled.semantic.exp.IExpRewriter;


public interface ISequence {

	public int bitLength();
	
	public boolean isContradictory();
	
	public boolean isFieldBinding();
	
	public boolean hasPrefix();
	
	public boolean hasSuffix();
	
	public ISequence mergeLeft(ISequence o);
	
	public ISequence mergeRight(ISequence o);
	
	public ISequence preDots();
	
	public ISequence postDots();

	public List<ISequent> getElements();
	
	public ISequence subst(IExpRewriter subs);
	
	public ISequence createSequence(boolean hasPrefix, boolean hasSuffix, List<ISequent> elements);
	
}
